GDK W32: fix direction of horizontal smooth scrolling events
authorEduard Braun <eduard.braun2@gmx.de>
Thu, 13 Sep 2018 14:17:51 +0000 (16:17 +0200)
committerРуслан Ижбулатов <lrn1986@gmail.com>
Tue, 18 Sep 2018 13:52:36 +0000 (13:52 +0000)
Commit 359df028be7b1dae76a1abb9bad8a3b86a648765 changed the
code to send GDK_SCROLL_SMOOTH with deltas instead of
GDK_SCROLL_(UP|DOWN|LEFT|RIGHT).

Windows defines deltas inversed for vertical direction
(positive values mean the wheel was turned forward)
but not for horizontal direction
(positive values mean the wheel was turned towards the right).

This commit fixes behavior as both axes were inverted previously.

gdk/win32/gdkevents-win32.c

index ad05ee6314f55a5040303f0a4a200f513a6ef2c7..40df7de1576419c9b2f654457d4a7dde557946a8 100644 (file)
@@ -2736,10 +2736,9 @@ gdk_event_translate (MSG  *msg,
           if (SystemParametersInfo (SPI_GETWHEELSCROLLCHARS, 0, &chars_multiplier, 0))
             event->scroll.delta_x *= (gdouble) chars_multiplier;
         }
-      /* It seems that delta values given by Windows are
-       * inverted (positive delta scrolls up, not down).
+      /* Positive delta scrolls up, not down,
+         see API documentation for WM_MOUSEWHEEL message.
        */
-      event->scroll.delta_x *= -1.0;
       event->scroll.delta_y *= -1.0;
       event->scroll.time = _gdk_win32_get_next_tick (msg->time);
       event->scroll.x = (gint16) point.x / impl->surface_scale;